{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Newton's Method"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 85,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as pt"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Here's a function:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 86,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f981263d630>]"
            ]
          },
          "execution_count": 86,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f9811b9cf60>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "def f(x):\n",
        "    return x**3 - x +1\n",
        "\n",
        "def df(x):\n",
        "    return 3*x**2 - 1\n",
        "\n",
        "xmesh = np.linspace(-2, 2, 100)\n",
        "pt.ylim([-3, 10])\n",
        "pt.plot(xmesh, f(xmesh))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 87,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "guesses = [2]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Evaluate this cell many times in-place (using Ctrl-Enter)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 84,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "-1.324717957244746\n"
          ]
        },
        {
          "data": {
            "image/png": "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\nXUQkhvw/ZfHmR9t8Ff4AAAAASUVORK5CYII=\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f9811b1f240>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "x = guesses[-1] # grab last guess\n",
        "\n",
        "slope = df(x)\n",
        "\n",
        "# plot approximate function\n",
        "pt.plot(xmesh, f(xmesh))\n",
        "pt.plot(xmesh, f(x) + slope*(xmesh-x))\n",
        "pt.plot(x, f(x), \"o\")\n",
        "pt.ylim([-3, 10])\n",
        "pt.axhline(0, color=\"black\")\n",
        "\n",
        "# Compute approximate root\n",
        "xnew = x - f(x) / slope\n",
        "guesses.append(xnew)\n",
        "print(xnew)"
      ]
    }
  ],
  "metadata": {},
  "nbformat": 4,
  "nbformat_minor": 0
}